Skip to content

[Artist] 장르 정보 보완#188

Merged
Creamcheesepie merged 1 commit into
mainfrom
bug/#180
Dec 24, 2025
Merged

[Artist] 장르 정보 보완#188
Creamcheesepie merged 1 commit into
mainfrom
bug/#180

Conversation

@ys0221
Copy link
Copy Markdown
Collaborator

@ys0221 ys0221 commented Dec 24, 2025

🔗 관련 이슈

관련된 이슈 번호를 연결해주세요.
Close #이슈번호 를 쓰면 PR merge 시 자동으로 close 됩니다.

🚀 PR 개요

이 PR이 어떤 변경을 포함하고 있는지 간단히 설명해주세요.

  • 장르 테이블의 구조 수정(Artist - ArtistGenre - Genre) : 다대다 관계 구현을 위해 중간 테이블인 ArtistGenre 도입
  • Genre 의 저장 방식 : Spotify API 를 통한 아티스트 저장할 때 해당 아티스트의 장르 리스트를 함께 저장

📌 변경 사항

주요 변경 내용을 체크리스트 형태로 정리해주세요.

  • 기능 추가
  • 버그 수정
  • 리팩터링
  • 문서 업데이트
  • 테스트 추가/수정

🧪 테스트 방법

변경된 내용을 어떻게 테스트했는지 구체적으로 적어주세요.

📸 스크린샷 (선택)

UI 변경 또는 시각적으로 확인할 수 있는 변경이 있다면 첨부해주세요.

스크린샷 2025-12-24 오전 9 10 06 스크린샷 2025-12-24 오전 9 10 40

⚠️ 참고 사항

리뷰어가 알아야 할 사항이 있다면 자유롭게 작성해주세요.

테이블이 새로 추가되고, 기존 테이블의 구조가 변경되었습니다! ERD 에 반영해놓겠습니다.

@ys0221 ys0221 self-assigned this Dec 24, 2025
@ys0221 ys0221 added Bug Something isn't working Refactor labels Dec 24, 2025
@github-actions
Copy link
Copy Markdown

Test Results

6 tests  ±0   6 ✅ ±0   0s ⏱️ ±0s
3 suites ±0   0 💤 ±0 
3 files   ±0   0 ❌ ±0 

Results for commit c26bd69. ± Comparison against base commit dc92342.

@github-actions
Copy link
Copy Markdown

⭐ JaCoCo Coverage

Line Coverage: 5.12%

📄 Coverage Details

Overall Line Coverage: 5.10% (201 covered / 3942 lines)

Package Summary (lowest first)
Package Line % Covered Missed
com/back/web7_9_codecrete_be/domain/plans/controller 0.00% 0 49
com/back/web7_9_codecrete_be/domain/location/controller 0.00% 0 40
com/back/web7_9_codecrete_be/domain/community/post/service 0.00% 0 45
com/back/web7_9_codecrete_be/global/rsData 0.00% 0 11
com/back/web7_9_codecrete_be/domain/chats/entity 0.00% 0 4
com/back/web7_9_codecrete_be/domain/location/entity 0.00% 0 15
com/back/web7_9_codecrete_be/global/scheduler 0.00% 0 3
com/back/web7_9_codecrete_be/domain/auth/entity 0.00% 0 0
com/back/web7_9_codecrete_be/global/websocket 0.00% 0 10
com/back/web7_9_codecrete_be/domain/auth/service 0.00% 0 136
com/back/web7_9_codecrete_be/domain/plans/service 0.00% 0 362
com/back/web7_9_codecrete_be/global/initData 0.00% 0 54
com/back/web7_9_codecrete_be/domain/users/controller 0.00% 0 26
com/back/web7_9_codecrete_be/domain/email/entity 0.00% 0 6
com/back/web7_9_codecrete_be/domain/community/comment/service 0.00% 0 17
com/back/web7_9_codecrete_be/domain/auth/controller 0.00% 0 24
com/back/web7_9_codecrete_be/domain/community/comment/controller 0.00% 0 7
com/back/web7_9_codecrete_be/domain/artists/controller 0.00% 0 31
com/back/web7_9_codecrete_be/domain/community/comment/entity 0.00% 0 12
com/back/web7_9_codecrete_be/domain/community/post/controller 0.00% 0 20
com/back/web7_9_codecrete_be/global/aspect 0.00% 0 4
com/back/web7_9_codecrete_be/global/wikidata 0.27% 1 374
com/back/web7_9_codecrete_be/domain/artists/service 0.32% 3 922
com/back/web7_9_codecrete_be/global/musicbrainz 0.46% 1 215
com/back/web7_9_codecrete_be/domain/users/service 0.97% 1 102
com/back/web7_9_codecrete_be/domain/email/service 1.61% 1 61
com/back/web7_9_codecrete_be/global/flo 1.85% 1 53
com/back/web7_9_codecrete_be/domain/chats/service 1.92% 1 51
com/back/web7_9_codecrete_be/domain/concerts/controller 2.86% 1 34
com/back/web7_9_codecrete_be/domain/concerts/entity 3.26% 3 89
com/back/web7_9_codecrete_be/global/storage 3.57% 2 54
com/back/web7_9_codecrete_be/domain/concerts/service 4.89% 25 486
com/back/web7_9_codecrete_be/domain/artists/entity 6.45% 4 58
com/back/web7_9_codecrete_be/global/rq 9.80% 5 46
com/back/web7_9_codecrete_be/domain/users/util 14.29% 1 6
com/back/web7_9_codecrete_be/domain/community/post/entity 16.67% 6 30
com/back/web7_9_codecrete_be/domain/chats/controller 20.00% 2 8
com/back/web7_9_codecrete_be/domain/plans/entity 21.88% 21 75
com/back/web7_9_codecrete_be/domain/users/entity 23.08% 12 40
com/back/web7_9_codecrete_be/global/security 27.62% 29 76
com/back/web7_9_codecrete_be/global/spotify 35.71% 5 9
com/back/web7_9_codecrete_be/domain/location/service 43.70% 59 76
com/back/web7_9_codecrete_be/global/doc 100.00% 17 0
Lowest Covered Classes (Top 20)
Class Line % Covered Missed
com.back.web7_9_codecrete_be.domain.plans.service.PlanService 0.00% 0 362
com.back.web7_9_codecrete_be.domain.artists.service.ArtistService 0.00% 0 97
com.back.web7_9_codecrete_be.domain.auth.service.AuthService 0.00% 0 73
com.back.web7_9_codecrete_be.global.initData.BaseInitData 0.00% 0 54
com.back.web7_9_codecrete_be.domain.plans.controller.PlanController 0.00% 0 49
com.back.web7_9_codecrete_be.domain.concerts.entity.Concert 0.00% 0 42
com.back.web7_9_codecrete_be.domain.artists.entity.Artist 0.00% 0 40
com.back.web7_9_codecrete_be.domain.plans.entity.Schedule 0.00% 0 37
com.back.web7_9_codecrete_be.global.security.JwtTokenProvider 0.00% 0 37
com.back.web7_9_codecrete_be.domain.community.post.service.PostService 0.00% 0 36
com.back.web7_9_codecrete_be.domain.users.entity.User 0.00% 0 31
com.back.web7_9_codecrete_be.domain.artists.controller.ArtistsController 0.00% 0 31
com.back.web7_9_codecrete_be.domain.location.service.LocationService 0.00% 0 30
com.back.web7_9_codecrete_be.domain.concerts.entity.ConcertPlace 0.00% 0 29
com.back.web7_9_codecrete_be.domain.location.controller.KakaoApiController 0.00% 0 29
com.back.web7_9_codecrete_be.domain.chats.service.ChatPolicyService 0.00% 0 27
com.back.web7_9_codecrete_be.domain.plans.entity.Plan 0.00% 0 27
com.back.web7_9_codecrete_be.domain.auth.service.TokenService 0.00% 0 27
com.back.web7_9_codecrete_be.domain.users.controller.UserController 0.00% 0 26
com.back.web7_9_codecrete_be.domain.auth.controller.AuthController 0.00% 0 24
Changed Classes (from this PR)
Source (PR) Class Prefix Line % Covered Missed
src/main/java/com/back/web7_9_codecrete_be/domain/artists/service/ArtistService.java com.back.web7_9_codecrete_be.domain.artists.service.ArtistService 0.00% 0 97
src/main/java/com/back/web7_9_codecrete_be/domain/artists/controller/ArtistsController.java com.back.web7_9_codecrete_be.domain.artists.controller.ArtistsController 0.00% 0 31
src/main/java/com/back/web7_9_codecrete_be/domain/artists/entity/ArtistGenre.java com.back.web7_9_codecrete_be.domain.artists.entity.ArtistGenre 0.00% 0 4
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/request/CreateRequest.java com.back.web7_9_codecrete_be.domain.artists.dto.request.CreateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/response/ArtistListResponse.java com.back.web7_9_codecrete_be.domain.artists.dto.response.ArtistListResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/repository/ArtistRepository.java com.back.web7_9_codecrete_be.domain.artists.repository.ArtistRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/repository/GenreRepository.java com.back.web7_9_codecrete_be.domain.artists.repository.GenreRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/service/SpotifyService.java com.back.web7_9_codecrete_be.domain.artists.service.SpotifyService 0.79% 2 251
src/main/java/com/back/web7_9_codecrete_be/domain/artists/entity/Artist.java com.back.web7_9_codecrete_be.domain.artists.entity.Artist 5.56% 3 51
src/main/java/com/back/web7_9_codecrete_be/domain/artists/entity/Genre.java com.back.web7_9_codecrete_be.domain.artists.entity.Genre 25.00% 1 3

🔗 Full HTML report: See artifact jacoco-full-html on this run → https://github.com/prgrms-web-devcourse-final-project/WEB7_9_codecrete_BE/actions/runs/20474546318

Copy link
Copy Markdown
Collaborator

@kms152000 kms152000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

}

return totalSaved;
// 2단계: 각 아티스트를 DB에 upsert (spotifyArtistId 기준으로 있으면 업데이트, 없으면 생성)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

insert일까요 update일까요...?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

둘 다 입니다!
만약 아티스트 정보가 DB에 없다면 Insert, 있다면 Update 해주는 방식이라고 생각해주시면 될 것 같아용

Copy link
Copy Markdown
Collaborator

@tobbot16 tobbot16 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

Copy link
Copy Markdown
Collaborator

@larama-C larama-C left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

실명 데이터 관해서 찾아보다가 좀 UI 많이구림.. 찾았는데 데이터가 25년에 데뷔한 가수 같은 경우는 조회가 안되긴 합니다.
API도 좀 오래되보이구요... 데이터 반환도 XML로 이루어져 있어서 조금 힘들 것 같긴합니다
그래도 한번 참고해보시라고 남겨봅니다!
데이터 수정 부분 체크만 잘 해주시면 감사하겠습니다!

Copy link
Copy Markdown
Collaborator

@heygeeji heygeeji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

@Creamcheesepie Creamcheesepie merged commit 3cb399f into main Dec 24, 2025
2 checks passed
@Creamcheesepie Creamcheesepie deleted the bug/#180 branch December 24, 2025 01:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Something isn't working Refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Artist] 장르 정보 보완

6 participants